home *** CD-ROM | disk | FTP | other *** search
- ; File name: URAn_GEM.S Revised: 1992.02.07
- ; Creator: U.R.Andersson Created: 1991.02.02
- ; (c)1991 by: U.R.Andersson All rights reserved
- ; Released as: PD FREEWARE (NB: commercial sales forbidden!)
- ;
- ;
- ; VDI FUNCTION DEFINITIONS
- ;
- v_opnwk = $000B7f01
- v_clswk = $00007f02
- v_clrwk = $00007f03
- v_updwk = $00007f04
- ;Op $05 has subop's given below
- v_pline = $ff007f06
- v_pmarker = $ff007f07
- v_gtext = $00ff7f08
- v_fillarea = $ff007f09
- v_cellarray = $02ff7f0a
- ;Op $0b has subop's given below
- vst_height = $01007f0c
- vst_rotation = $00017f0d
- vs_color = $00047f0e
- vsl_type = $00017f0f
- vsl_width = $01007f10
- vsl_color = $00017f11
- vsm_type = $00017f12
- vsm_height = $01007f13
- vsm_color = $00017f14
- vst_font = $00017f15
- vst_color = $00017f16
- vsf_interior = $00017f17
- vsf_style = $00017f18
- vsf_color = $00017f19
- vq_color = $00027f1a
- ;$1b
- vrq_locator = $01007f1c
- vsm_locator = vrq_locator
- vrq_valuator = $00017f1d
- vsm_valuator = vrq_valuator
- vrq_choice = $00017f1e
- vsm_choice = vrq_choice
- vrq_string = $01027f1f
- vsm_string = vrq_string
- vswr_mode = $00017f20
- vsin_mode = $00027f21
- ;$22
- vql_attributes = $00007f23
- vqm_attributes = $00007f24
- vqf_attributes = $00007f25
- vqt_attributes = $00007f26
- vst_alignment = $00027f27
- v_opnvwk = $000b7f64
- v_clsvwk = $00007f65
- vq_extnd = $00017f66
- v_contour = $01017f67
- v_contourfill = v_contour
- vsf_perimeter = $00017f68
- v_get_pixel = $01007f69
- vst_effects = $00017f6a
- vst_point = $00017f6b
- vsl_ends = $00027f6c
- vro_cpyfm = $04037f6d
- vr_trnfm = $00007f6e
- vsc_form = $00257f6f
- vsf_udpat = $00ff7f70
- vsl_udsty = $00017f71
- vr_recfl = $02007f72
- vqin_mode = $00017f73
- vqt_extent = $00ff7f74
- vqt_width = $00017f75
- vex_timv = $00007f76
- vex_time = vex_timv
- vst_load_fonts = $00017f77
- vst_unload_fonts= $00017f78
- vrt_cpyfm = $04017f79
- v_show_c = $00017f7a
- v_hide_c = $00007f7b
- vq_mouse = $00007f7c
- vex_butv = $00007f7d
- vex_motv = $00007f7e
- vex_curv = $00007f7f
- vq_key_s = $00007f80
- vs_clip = $02017f81
- ;;;vqt_name = $xxxx7f82
- ;;;vqt_fontinfo = $xxxx7f83
- ;
- ;
- ; VDI subfunction definitions
- ;
- vq_chcells = $00000105
- v_exit_cur = $00000205
- v_enter_cur = $00000305
- v_curup = $00000405
- v_curdown = $00000505
- v_curright = $00000605
- v_curleft = $00000705
- v_curhome = $00000805
- v_eeol = $00000905
- v_eeos = $00000a05
- vs_curaddress = $00020b05
- v_curtext = $00ff0c05
- v_rvon = $00000d05
- v_rvoff = $00000e05
- vq_curaddress = $00000f05
- vq_tabstatus = $00001005
- v_hardcopy = $00001105
- v_dspcur = $01001205
- v_rmcur = $00001305
- v_form_adv = $00001405
- v_output_window = $02001505
- v_clear_disp_list=$00001605
- ;;;v_bit_image = $xxxx1705
- ;
- vs_palette = $00013c05
- ;
- vqp_films = $00005b05
- vqp_state = $00005c05
- vsp_state = $00155d05
- vsp_save = $00005e05
- vsp_message = $00009500
- vqp_error = $00006005
- v_meta_extents = $02006205
- ;;;v_write_meta = $xxxx6305
- vm_filename = $00ff6405
- ;
- v_bar = $0200010b
- v_arc = $0402020b
- v_pieslice = $0402030b
- v_circle = $0300040b
- v_ellipse = $0200050b
- v_ellarc = $0202060b
- v_ellpie = $0202070b
- v_rbox = $0200080b
- v_rfbox = $0200090b
- v_justified = $02ff0a0b
- ;
- ;
- ; AES FUNCTION DEFINITIONS
- ;
- appl_init = $01000a
- appl_read = $21100b
- appl_write = $21100c
- appl_find = $01100d
- appl_tplay = $21100e
- appl_trecord = $11100f
- appl_exit = $010013
- ;
- evnt_keybd = $010014
- evnt_button = $350015
- evnt_mouse = $550016
- evnt_mesag = $011017
- evnt_timer = $210018
- evnt_multi =$1071019
- evnt_dclick = $21001a
- ;
- menu_bar = $11101e
- menu_icheck = $21101f
- menu_ienable = $211020
- menu_tnormal = $211021
- menu_text = $112022
- menu_register = $111023
- ;
- objc_add = $211028
- objc_delete = $111029
- objc_draw = $61102a
- objc_find = $41102b
- objc_offset = $13102c
- objc_order = $21102d
- objc_edit = $42102e
- objc_change = $81102f
- ;
- form_do = $111032
- form_dial = $911033
- form_alert = $111034
- form_error = $110035
- form_center = $051036
- ;;;form_button
- ;;;form_keybd
- ;
- graf_rubberbox = $430046
- graf_dragbox = $830047
- graf_movebox = $610048
- graf_mbox = $610048
- graf_growbox = $810049
- graf_shrinkbox = $81004a
- graf_watchbox = $41104b
- graf_slidebox = $31104c
- graf_handle = $05004d
- graf_mouse = $11104e
- graf_mkstate = $05004f
- ;
- scrp_read = $011050
- scrp_write = $011051
- ;
- fsel_input = $02205a
- fsel_exinput = $02305b
- ;
- wind_create = $510064
- wind_open = $510065
- wind_close = $110066
- wind_delete = $110067
- wind_get = $250068
- wind_set = $610069
- wind_find = $21006a
- wind_update = $11006b
- wind_calc = $65006c
- wind_new = $00006d
- ;
- rsrc_load = $01106e
- rsrc_free = $01006f
- rsrc_gaddr = $210170
- rsrc_saddr = $211071
- rsrc_obfix = $111072
- ;
- shel_read = $012078
- shel_write = $312079
- shel_get = $11107a
- shel_put = $11107b
- shel_find = $01107c
- shel_envrn = $01207d
- ;
- ;
- ; AES DATA DEFINITIONS
- ;
- ; Function flags for evnt_multi
- ;
- MU_KEYBD = $01
- MU_BUTTON = $02
- MU_M1 = $04
- MU_M2 = $08
- MU_MESAG = $10
- MU_TIMER = $20
- ;
- ;
- ; Message event codes
- ;
- MN_SELECTED = $10
- WM_REDRAW = $14
- WM_TOPPED = $15
- WM_CLOSED = $16
- WM_FULLED = $17
- WM_ARROWED = $18
- WM_HSLID = $19
- WM_VSLID = $1A
- WM_SIZED = $1B
- WM_MOVED = $1C
- WM_NEWTOP = $1D
- AC_OPEN = $28
- AC_CLOSE = $29
- ;
- ;
- ; Function codes for form_dial
- ;
- FMD_START = 0
- FMD_GROW = 1
- FMD_SHRINK = 2
- FMD_FINISH = 3
- ;
- ;
- ; Object type codes
- ;
- G_BOX = $14
- G_TEXT = $15
- G_BOXTEXT = $16
- G_IMAGE = $17
- G_PROGDEF = $18
- G_IBOX = $19
- G_BUTTON = $1A
- G_BOXCHAR = $1B
- G_STRING = $1C
- G_FTEXT = $1D
- G_FBOXTEXT = $1E
- G_ICON = $1F
- G_TITLE = $20
- ;
- ;
- ; Object flags
- ;
- NONE = $00
- SELECTABLE = $01
- DEFAULT = $02
- EXIT = $04
- EDITABLE = $08
- RBUTTON = $10
- LASTOB = $20
- TOUCHEXIT = $40
- HIDETREE = $80
- INDIRECT = $100
- ;
- ;
- ; Object states
- ;
- NORMAL = $00
- SELECTED = $01
- CROSSED = $02
- CHECKED = $04
- DISABLED = $08
- OUTLINED = $10
- SHADOWED = $20
- ;
- ;
- ; Function codes for wind_set/wind_get
- ;
- WF_KIND = $01
- WF_NAME = $02
- WF_INFO = $03
- WF_WORKXYWH = $04
- WF_CURRXYWH = $05
- WF_PREVXYWH = $06
- WF_FULLXYWH = $07
- WF_HSLIDE = $08
- WF_VSLIDE = $09
- WF_TOP = $0A
- WF_FIRSTXYWH = $0B
- WF_NEXTXYWH = $0C
- WF_RESVD = $0D
- WF_NEWDESK = $0E
- WF_HSLSIZE = $0F
- WF_VSLSIZE = $10
- WF_SCREEN = $11
- ;
- ;
- ; Shape codes for graf_mouse
- ;
- ARROW = $00
- TEXT_CRSR = $01
- HOURGLASS = $02
- BEE = $02
- POINT_HAND = $03
- FLAT_HAND = $04
- THIN_CROSS = $05
- THICK_CROSS = $06
- OUTLN_CROSS = $07
- USER_DEF = $FF
- M_OFF = $100
- M_ON = $101
- ;
- ;
- ; MACRO DEFINITIONS
- ;
- _uni_test MACRO symbol
- .check\@:
- IFND \1
- \1:
- _uni_flag set 1
- ELSEIF
- IFNE \1=.check\@
- \1:
- _uni_flag set 1
- ELSEIF
- _uni_flag set 0
- ENDC
- ENDC
- ENDM ;_uni_test
- ;
- ;
- vdi_init_ref macro
- _uni_test _vdiref_loc
- IFEQ 0=_uni_flag
- bsr vdidef_loc
- ENDC
- ENDM ;vdi_init_ref
- ;
- vdi_init_def macro
- _uni_test _vdidef_loc
- IFEQ 0=_uni_flag
- bra vdidef_end
- vdidef_loc:
- MOVE.L SP,D0
- LEA VDI_INITLIMIT,SP
- PEA PTSOUT
- PEA INTOUT
- PEA PTSIN
- PEA INTIN
- PEA CONTRL
- PEA VDIPB
- MOVE.L D0,SP
- RTS
- VDIPTR: DS.L 1 ;->VDIPB
- VDIPB: DS.L 5 ;->CONTRL,INTIN,PTSIN,INTOUT,PTSOUT
- VDI_INITLIMIT:
- vdidef_end:
- ENDC
- ENDM ;vdi_init_def
- ;
- ;
- sub_vdi macro symbol
- vdi_init_ref
- move.l \1,d0
- BSR sub_vdicode
- _uni_test _sub_vdi_loc
- IFEQ 0=_uni_flag
- bra.s sub_vdiend
- sub_vdicode:
- move.l a0,d1
- lea contrl,a0
- clr.b (a0)
- move.b d0,1(a0)
- clr.b d0
- rol.l #8,d0
- cmp.b #$ff,d0
- beq.s .noptsin
- move d0,2(a0)
- .noptsin:
- clr d0
- rol.l #8,d0
- cmp.b #$ff,d0
- beq.s .nointin
- move d0,6(a0)
- .nointin:
- clr d0
- rol.l #8,d0
- bclr #7,d0
- bne.s .nohandle
- move \2,12(a0)
- .nohandle:
- cmp.b #$7f,d0
- beq.s .nosubop
- move d0,10(a0)
- .nosubop:
- move.l d1,a0
- move.l vdiptr,d1
- move #$73,d0
- trap #2
- move.l intout,d0
- swap d0
- move.l ptsout,d1
- rts
- sub_vdiend:
- ENDC
- vdi_init_def
- ENDM ;sub_vdi
- ;
- ;
- aes_init_ref macro
- _uni_test _aesref_loc
- IFEQ 0=_uni_flag
- bsr aesdef_loc
- ENDC
- ENDM ;aes_init_ref
- ;
- ;
- aes_init_def macro
- _uni_test _aesdef_loc
- IFEQ 0=_uni_flag
- bra aesdef_end
- aesdef_loc:
- MOVE.L SP,D0
- LEA AES_INITLIMIT,SP
- PEA ADDROUT
- PEA ADDRIN
- PEA INTOUT
- PEA INTIN
- PEA GLOBAL
- PEA CONTRL
- PEA AESPB
- MOVE.L D0,SP
- RTS
- ;
- AESPTR: DS.L 1 ;->AESPB
- AESPB: DS.L 6 ;->CONTRL,GLOBAL,INTIN,INTOUT,ADDRIN,ADDROUT
- AES_INITLIMIT:
- ;
- GLOBAL:
- APVERSION: DS.W 1
- APCOUNT: DS.W 1
- AP_ID: DS.W 1
- APPRIVATE: DS.L 1
- APPTREE: DS.L 1
- AP1RESV: DS.L 1
- AP2RESV: DS.L 1
- AP3RESV: DS.L 1
- AP4RESV: DS.L 1
- ;
- ADDRIN: DS.L 3
- ADDROUT: DS.L 1
- ;
- aesdef_end:
- ENDC
- ENDM ;aes_init_def
- ;
- ;
- sub_aes macro v1
- aes_init_ref
- move.l \1,d0
- BSR sub_aescode
- _uni_test _sub_aes_loc
- IFEQ 0=_uni_flag
- bra.s sub_aesend
- sub_aescode:
- move.l a0,d1
- lea contrl,a0
- lsl.l #8,d0
- roxl.l #1,d1
- ror #8,d0
- move d0,(a0)+
- clr d0
- roxr.l #1,d1
- roxl #1,d0
- rol.l #4,d0
- move d0,(a0)+
- clr d0
- rol.l #4,d0
- move d0,(a0)+
- clr d0
- rol.l #4,d0
- move d0,(a0)+
- clr d0
- rol.l #4,d0
- move d0,(a0)+
- move.l d1,a0
- move.l aesptr,d1
- move #$c8,d0
- trap #2
- move.l intout,d0
- swap d0
- move.l addrout,d1
- rts
- sub_aesend:
- ENDC
- aes_init_def
- ENDM ;sub_aes
- ;
- ;
- gem_aes macro op,v1,v2,v3,v4,v5,v6,v7,v8,v9,va
- aes_init_ref
- __AESII set (\1)>>20&255
- __AESIO set (\1)>>16&15
- __AESAI set (\1)>>12&15
- __AESAO set (\1)>>08&15
- __AESOP set (\1)&255
- MOVE.L A0,D0
- IFNE 0<__AESII
- LEA INTIN,A0
- MOVE.L \2,(A0)+
- IFEQ $19=__AESOP
- IFNE 1<__AESII
- MOVE.L \3,(A0)+
- IFEQ $69=__AESOP
- IFNE 2<__AESII
- MOVE.L \4,(A0)+
- IFNE 3<__AESII
- MOVE.L \5,(A0)+
- IFNE 4<__AESII
- MOVE.L \6,(A0)+
- IFNE 5<__AESII
- MOVE.L \7,(A0)+
- IFNE 6<__AESII
- MOVE.L \8,(A0)+
- IFNE 7<__AESII
- MOVE.L \9,(A0)+
- IFNE 8<__AESII
- MOVE.L \a,(A0)+
- ELSEIF
- GEMADDRIN \a
- ENDC ;9II
- ELSEIF
- GEMADDRIN \9
- ENDC ;8II
- ELSEIF
- GEMADDRIN \8
- ENDC ;7II
- ELSEIF
- GEMADDRIN \7
- ENDC ;6II
- ELSEIF
- GEMADDRIN \6
- ENDC ;5II
- ELSEIF
- GEMADDRIN \5,\6
- ENDC ;4II
- ELSEIF
- GEMADDRIN \4,\5
- ENDC ;3II
- ENDC ;<>wind_set
- ELSEIF
- GEMADDRIN \3,\4
- ENDC ;2II
- ENDC ;<>evnt_multi
- ELSEIF
- GEMADDRIN \2,\3,\4
- ENDC ;1II
- LEA CONTRL,A0
- MOVE #__AESOP,(A0)+
- MOVE #__AESII,(A0)+
- MOVE #__AESIO,(A0)+
- MOVE #__AESAI,(A0)+
- MOVE #__AESAO,(A0)+
- MOVE.L D0,A0
- MOVE.L AESPTR,D1
- MOVE #$C8,D0
- TRAP #2
- aes_init_def
- ENDM ;gem_aes
- ;
- GEMADDRIN MACRO v1,v2,v3
- IFNE 0<__AESAI
- LEA ADDRIN,A0
- MOVE.L \1,(A0)+
- IFNE 1<__AESAI
- MOVE.L \2,(A0)+
- IFNE 2<__AESAI
- MOVE.L \3,(A0)+
- ENDC ;3AI
- ENDC ;2AI
- ENDC ;1AI
- ENDM ;gemaddrin
- ;
- ; End of file: URAn_GEM.S
-